/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Model;

import Controller.Fournisseur;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.HashMap;
import java.util.Map;

public class FournisseurDAO extends AbstractDAO<Fournisseur> {

  private VilleDAO villeDAO;

  public FournisseurDAO(Connection connect) {
	super(connect);
	this.villeDAO = new VilleDAO(connect);
  }

  @Override
  protected boolean insert(Fournisseur obj) {
	throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  }

  @Override
  protected boolean update(Fournisseur obj) {
	throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  }

  @Override
  protected boolean delete(Fournisseur obj) {
	throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  }

  /**
   * Fonction pour récupérer le fournisseur en fonction de l'id
   * @param id
   * @return Fournisseur
   */
  @Override
  protected Fournisseur findById(int id) {
	Fournisseur fournisseur = new Fournisseur();
	try {

	  ResultSet res = this.connect.createStatement(
			  ResultSet.TYPE_SCROLL_INSENSITIVE,
			  ResultSet.CONCUR_READ_ONLY).executeQuery("SELECT * FROM fournisseur WHERE idF = " + id);

	  if (res.first()) {
		fournisseur.setId(res.getInt(1));
		fournisseur.setNom(res.getString(2));
	  }

	  return fournisseur;

	} catch (Exception e) {
	  e.printStackTrace();
	  return null;
	}
  }
  
  /**
   * Récupère tout les fournisseurs
   * @return Map<Integer, Fournisseur>
   */
  public Map<Integer, Fournisseur> findAll() {
	Map<Integer, Fournisseur> fournisseurs = new HashMap();
	try {
	  ResultSet result = this.connect.createStatement(
			  ResultSet.TYPE_SCROLL_INSENSITIVE,
			  ResultSet.CONCUR_READ_ONLY).executeQuery("SELECT * FROM fournisseur");

	  while (result.next()) {
		Fournisseur fournisseur = new Fournisseur();
		fournisseur.setId(result.getInt(1));
		fournisseur.setNom(result.getString(2));
		fournisseur.setAdresse(result.getString(3));
		fournisseur.setVille(this.villeDAO.findById(result.getInt(4)));
		fournisseurs.put(result.getInt(1), fournisseur);
	  }
	} catch (Exception e) {
	}
	return fournisseurs;
  }
}
